-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
1120 lines (967 loc) · 54 KB
/
Copy pathindex.html
File metadata and controls
1120 lines (967 loc) · 54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vermont Zoning Atlas</title>
<meta name="description" content="The Vermont Zoning Atlas is a web-based geospatial interface that visualizes zoning code distributions across all of Vermont.">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<link rel="stylesheet" href="styles.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<style>
/* Story-specific styles */
.hero-section {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 2rem;
}
.hero-section h1 {
font-size: 3.5rem;
margin-bottom: 1rem;
color: white;
animation: fadeInUp 1s ease-out;
}
.hero-section p {
font-size: 1.5rem;
max-width: 800px;
margin: 0 auto 2rem;
opacity: 0.95;
animation: fadeInUp 1s ease-out 0.3s both;
}
.hero-stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 2rem;
max-width: 900px;
width: 100%;
margin-top: 3rem;
animation: fadeInUp 1s ease-out 0.6s both;
}
.stat-box {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 2rem;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.2);
}
.stat-number {
font-size: 3rem;
font-weight: bold;
display: block;
margin-bottom: 0.5rem;
}
.stat-label {
font-size: 1rem;
opacity: 0.9;
}
.scroll-indicator {
position: absolute;
bottom: 2rem;
left: 50%;
transform: translateX(-50%);
animation: bounce 2s infinite;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateX(-50%) translateY(0);
}
40% {
transform: translateX(-50%) translateY(-20px);
}
60% {
transform: translateX(-50%) translateY(-10px);
}
}
.story-section {
min-height: 80vh;
padding: 4rem 2rem;
display: flex;
flex-direction: column;
justify-content: center;
opacity: 0;
transform: translateY(50px);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.story-section.visible {
opacity: 1;
transform: translateY(0);
}
.story-section:nth-child(even) {
background-color: #f9f9f9;
}
.story-content {
max-width: 1000px;
margin: 0 auto;
width: 100%;
}
.story-section h2 {
font-size: 2.5rem;
margin-bottom: 2rem;
color: #333;
}
.story-section p {
font-size: 1.25rem;
line-height: 1.8;
margin-bottom: 1.5rem;
}
.chart-container {
position: relative;
height: 400px;
margin: 2rem 0;
background: white;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.rpc-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
margin-top: 2rem;
}
.rpc-card {
background: white;
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.rpc-card:hover {
transform: translateY(-5px);
box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.rpc-name {
font-size: 1.3rem;
font-weight: 600;
color: #2a7ae2;
margin-bottom: 0.5rem;
}
.rpc-abbrev {
font-size: 0.9rem;
color: #666;
font-weight: 600;
margin-bottom: 0.5rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.rpc-pop {
font-size: 1rem;
color: #555;
margin-top: 0.5rem;
}
.rpc-card p {
margin-top: 0.75rem;
font-size: 0.95rem;
color: #666;
line-height: 1.5;
}
.rpc-card a {
font-size: 0.9rem;
color: #2a7ae2;
text-decoration: none;
}
.rpc-card a:hover {
text-decoration: underline;
}
.process-steps {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin: 2rem 0;
}
.process-step {
text-align: center;
padding: 1.5rem;
}
.process-number {
display: inline-block;
width: 60px;
height: 60px;
line-height: 60px;
border-radius: 50%;
background: #2a7ae2;
color: white;
font-size: 1.5rem;
font-weight: bold;
margin-bottom: 1rem;
}
.process-step h3 {
font-size: 1.2rem;
margin-bottom: 0.5rem;
}
.map-section {
padding: 4rem 2rem;
background: white;
}
.map-section h2 {
font-size: 2.5rem;
margin-bottom: 1rem;
text-align: center;
}
.map-intro {
text-align: center;
max-width: 800px;
margin: 0 auto 2rem;
font-size: 1.2rem;
}
.disclaimer {
background: #fff3cd;
border: 1px solid #ffc107;
padding: 1rem;
border-radius: 4px;
margin-bottom: 2rem;
text-align: center;
font-weight: 600;
}
@media (max-width: 768px) {
.hero-section h1 {
font-size: 2rem;
}
.hero-section p {
font-size: 1.1rem;
}
.stat-number {
font-size: 2rem;
}
.story-section h2 {
font-size: 2rem;
}
.story-section p {
font-size: 1.1rem;
}
}
</style>
</head>
<body>
<header>
<div class="container">
<h1 class="site-title"><a href="index.html">Vermont Zoning Atlas</a></h1>
<nav>
<a href="about.html">About</a>
<a href="data.html">Data</a>
<a href="contribute.html">Contribute</a>
<a href="resources.html">Resources</a>
</nav>
</div>
</header>
<!-- Hero Section -->
<section class="hero-section">
<h1>Vermont Zoning Atlas</h1>
<p>Mapping zoning regulations across all 255 Vermont towns to build <strong>better places</strong> and create homes for the next generation of Vermonters.</p>
<div class="hero-stats">
<div class="stat-box">
<span class="stat-number">255</span>
<span class="stat-label">Towns & Cities</span>
</div>
<div class="stat-box">
<span class="stat-number">647,064</span>
<span class="stat-label">Population (2023)</span>
</div>
<div class="stat-box">
<span class="stat-number">1,755</span>
<span class="stat-label">Zoning Districts Mapped</span>
</div>
<div class="stat-box">
<span class="stat-number">11</span>
<span class="stat-label">Regional Planning Commissions</span>
</div>
</div>
<div class="scroll-indicator">
<svg width="30" height="50" viewBox="0 0 30 50" fill="none" stroke="white" stroke-width="2">
<rect x="5" y="5" width="20" height="35" rx="10" />
<circle cx="15" cy="15" r="3" fill="white" />
</svg>
</div>
</section>
<!-- Vermont Story Section -->
<section class="story-section" data-section="vermont">
<div class="story-content">
<h2>The Homes We Need vs. What We Have</h2>
<p>Vermont faces a housing challenge: the types of homes our zoning allows don't match what Vermonters need. Many towns restrict housing to single-family homes on large lots, making it difficult to build <strong>homes in walkable places</strong>—apartments near downtown, duplexes in village centers, or accessory dwelling units that help families age in place.</p>
<p>Vermont is unique. Unlike most states where counties control zoning, Vermont grants <strong>each of its 255 towns</strong> the authority to create its own bylaws. Each municipality crafts rules about what can be built, where, and how—dividing their land into <strong>zoning districts</strong> with specific regulations.</p>
<div class="process-steps">
<div class="process-step">
<div class="process-number">1</div>
<h3>Planning Commission</h3>
<p>Drafts zoning bylaws with community input</p>
</div>
<div class="process-step">
<div class="process-number">2</div>
<h3>Public Hearing</h3>
<p>Citizens review and comment on proposals</p>
</div>
<div class="process-step">
<div class="process-number">3</div>
<h3>Australian Ballot</h3>
<p>Voters approve or reject changes at Town Meeting</p>
</div>
<div class="process-step">
<div class="process-number">4</div>
<h3>Implementation</h3>
<p>Zoning Administrator enforces adopted regulations</p>
</div>
</div>
<p style="margin-top: 2rem; padding: 1.5rem; background: #fff3cd; border-left: 4px solid #ffc107; border-radius: 4px;"><strong>Fair Housing Requirement:</strong> Vermont law (<a href="https://legislature.vermont.gov/statutes/section/24/117/04412">24 VSA § 4412</a>) requires municipalities to ensure zoning regulations provide reasonable opportunity for all housing types and don't have discriminatory effects.</p>
</div>
</section>
<!-- Growth Section -->
<section class="story-section" data-section="growth">
<div class="story-content">
<h2>Vermont's Housing Shortage</h2>
<p>Vermont needs more homes. The state's <a href="https://accd.vermont.gov/housing/plans-data-rules/needs-assessment" target="_blank">Housing Needs Assessment</a> shows a significant gap between available housing and what Vermonters can afford. Population has grown slowly over decades, but housing production hasn't kept pace, driving up costs and limiting opportunities.</p>
<div class="chart-container">
<canvas id="growthChart"></canvas>
</div>
<p><strong>Zoning is a major factor.</strong> Regulations that require large lot sizes, prohibit apartments and multi-family homes, or make accessory dwelling units difficult to build all limit housing production. When only expensive housing types are allowed, working families, young people, and seniors have fewer options to stay in Vermont.</p>
</div>
</section>
<!-- Housing Types Section -->
<section class="story-section" data-section="housing-types">
<div class="story-content">
<h2>Understanding Housing Types: What the Atlas Tracks</h2>
<p>The Vermont Zoning Atlas maps what types of housing each district allows. Understanding these housing categories is essential for interpreting the data and identifying where <strong>incremental zoning reforms</strong> could expand opportunities.</p>
<h3 style="margin-top: 2rem; font-size: 1.5rem;">Data Fields in the Atlas</h3>
<p style="margin-bottom: 2rem;">For each of Vermont's 1,755 zoning districts, the atlas documents regulations for these key housing types:</p>
<div class="rpc-grid">
<div class="rpc-card">
<div class="rpc-name">1-Family Homes</div>
<p><strong>One dwelling unit on one lot.</strong> The most common housing type in Vermont. The atlas tracks whether single-family homes are permitted by right, require a conditional use permit (public hearing), or are prohibited. We also document minimum lot size, frontage, and setback requirements.</p>
</div>
<div class="rpc-card">
<div class="rpc-name">2-Family (Duplexes)</div>
<p><strong>Two units in one building or on one lot.</strong> Traditional Vermont housing found in villages and mill towns. Duplexes can look like large single homes (side-by-side or up-down units) but provide naturally affordable rentals. Often face more restrictions than single-family homes.</p>
</div>
<div class="rpc-card">
<div class="rpc-name">3-Family (Triplexes)</div>
<p><strong>Three units in one building.</strong> Part of the "missing middle" housing spectrum. Triplexes fit residential neighborhoods but provide density. Many towns require conditional use permits or prohibit them entirely, even in village centers.</p>
</div>
<div class="rpc-card">
<div class="rpc-name">4+ Family (Multi-Family)</div>
<p><strong>Four or more units—apartments.</strong> Essential for workforce and affordable housing but heavily restricted. The atlas shows where apartments require large lot sizes, connection to municipal utilities, or are prohibited. Many towns allow only in limited mixed-use or commercial zones.</p>
</div>
<div class="rpc-card">
<div class="rpc-name">Accessory Dwelling Units</div>
<p><strong>Secondary units on the same lot as a primary residence.</strong> Can be attached (garage apartment) or detached (backyard cottage). Vermont law encourages ADUs, but towns regulate size limits, parking requirements, and owner-occupancy rules. Atlas documents ADU-specific provisions.</p>
</div>
<div class="rpc-card">
<div class="rpc-name">Elderly & Affordable Housing</div>
<p><strong>Housing with use restrictions.</strong> Some districts allow higher density or smaller lots if restricted to seniors (62+) or income-qualified residents. The atlas indicates where these special provisions exist and what additional allowances they provide.</p>
</div>
</div>
<h3 style="margin-top: 3rem; font-size: 1.5rem;">Three Levels of Permission</h3>
<p>For each housing type in each district, zoning regulations fall into three categories:</p>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; margin: 2rem 0;">
<div style="background: #e8f5e9; padding: 1.5rem; border-radius: 8px; border-left: 4px solid #27ae60;">
<h4 style="color: #27ae60; margin-top: 0; font-size: 1.3rem;">Permitted</h4>
<p style="margin: 0;">Allowed "by right"—no special approval needed beyond building permits. Property owners can build if they meet dimensional requirements (lot size, setbacks, etc.).</p>
</div>
<div style="background: #fff3e0; padding: 1.5rem; border-radius: 8px; border-left: 4px solid #f39c12;">
<h4 style="color: #f39c12; margin-top: 0; font-size: 1.3rem;">Public Hearing Required</h4>
<p style="margin: 0;">Requires conditional use permit or special exception. Project goes before planning board or zoning board for discretionary review. Adds time, cost, and uncertainty.</p>
</div>
<div style="background: #ffebee; padding: 1.5rem; border-radius: 8px; border-left: 4px solid #e74c3c;">
<h4 style="color: #e74c3c; margin-top: 0; font-size: 1.3rem;">Prohibited</h4>
<p style="margin: 0;">Not allowed in this district. Would require zoning amendment (citizen vote at Town Meeting) to permit. Represents the strongest barrier to housing.</p>
</div>
</div>
<p style="margin-top: 2rem; background: #e3f2fd; padding: 1.5rem; border-radius: 8px; border-left: 4px solid #2196f3;"><strong>How to Use the Interactive Map:</strong> Below, you can select a housing type (1-family through 4+ family) and the map will color-code all 1,755 districts based on whether that housing type is <span style="color: #27ae60; font-weight: 600;">permitted</span>, <span style="color: #f39c12; font-weight: 600;">requires a public hearing</span>, or is <span style="color: #e74c3c; font-weight: 600;">prohibited</span>. Click any district for details.</p>
</div>
</section>
<!-- Methodology Section -->
<section class="story-section" data-section="methodology">
<div class="story-content">
<h2>How We Built the Atlas</h2>
<p>Creating a comprehensive statewide zoning atlas requires meticulous work. Throughout 2023-2024, zoning bylaws and maps from across Vermont were collected, interpreted, and synthesized into a unified database cataloging all 1,755 zoning districts.</p>
<h3 style="margin-top: 2rem; font-size: 1.5rem;">Data Collection Process</h3>
<div class="process-steps" style="grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));">
<div class="process-step">
<div class="process-number" style="background: #27ae60;">1</div>
<h4 style="font-size: 1.1rem;">GIS Mapping</h4>
<p style="font-size: 1rem;">Collected GIS files from all 11 Regional Planning Commissions covering their member municipalities</p>
</div>
<div class="process-step">
<div class="process-number" style="background: #27ae60;">2</div>
<h4 style="font-size: 1.1rem;">Bylaw Review</h4>
<p style="font-size: 1rem;">Read and coded zoning regulations for each district, documenting housing allowances and dimensional requirements</p>
</div>
<div class="process-step">
<div class="process-number" style="background: #27ae60;">3</div>
<h4 style="font-size: 1.1rem;">Database Creation</h4>
<p style="font-size: 1rem;">Synthesized regulations into standardized fields suitable for analysis and mapping</p>
</div>
<div class="process-step">
<div class="process-number" style="background: #27ae60;">4</div>
<h4 style="font-size: 1.1rem;">Verification</h4>
<p style="font-size: 1rem;">Cross-checked data with RPCs and municipal officials for accuracy</p>
</div>
</div>
<p style="margin-top: 2rem;"><strong>What's Included:</strong> For each district, the atlas documents whether 1-family through 4+-family housing is permitted, requires a public hearing (conditional use), or is prohibited. Additional fields capture minimum lot sizes, setbacks, accessory dwelling unit rules, affordable and elderly housing provisions, and other key regulations.</p>
<p><strong>Data Sources:</strong> GIS shapefiles provided by Vermont's 11 Regional Planning Commissions; municipal zoning bylaws accessed through town websites, clerks' offices, and RPC archives; Vermont State Statute Title 24 provisions.</p>
<p style="background: #e8f5e9; padding: 1.5rem; border-left: 4px solid #27ae60; border-radius: 4px; margin-top: 2rem;"><strong>Data Transparency:</strong> This is a community-built, open-source dataset. All data and methodology are available on our <a href="https://github.com/VERSO-UVM/Vermont-Zoning-Atlas" style="color: #27ae60;" target="_blank">GitHub repository</a>. We welcome corrections and updates from municipal officials and community members.</p>
</div>
</section>
<!-- Statewide Findings Section -->
<section class="story-section" data-section="findings">
<div class="story-content">
<h2>What We Found: Vermont's Zoning Patterns</h2>
<p>The Vermont Zoning Atlas reveals clear patterns in how our communities regulate housing. These findings help identify where reforms could create more housing opportunities while maintaining community character.</p>
<h3 style="margin-top: 2rem; font-size: 1.8rem; color: #27ae60;">Single-Family Housing</h3>
<p style="font-size: 1.3rem; line-height: 1.8;"><strong>Single-family homes are widely permitted across Vermont.</strong> The vast majority of Vermont's zoned land allows single-family housing by right, reflecting the state's traditional settlement patterns. However, many districts require large lot sizes (1+ acres) that increase land costs and limit development in village centers and near existing infrastructure.</p>
<div style="background: #f8f9fa; padding: 2rem; border-radius: 8px; margin: 2rem 0;">
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; text-align: center;">
<div>
<div style="font-size: 3rem; font-weight: bold; color: #27ae60;">~90%</div>
<div style="font-size: 1.1rem; margin-top: 0.5rem;">of districts permit single-family homes</div>
</div>
<div>
<div style="font-size: 3rem; font-weight: bold; color: #f39c12;">~60%</div>
<div style="font-size: 1.1rem; margin-top: 0.5rem;">require lots of 1 acre or larger</div>
</div>
</div>
</div>
<h3 style="margin-top: 3rem; font-size: 1.8rem; color: #f39c12;">Duplexes and Triplexes: The "Missing Middle"</h3>
<p style="font-size: 1.3rem; line-height: 1.8;"><strong>Two- and three-family homes face significant barriers.</strong> These traditional Vermont housing types—common in village centers and mill towns—are often prohibited or require conditional use permits in many districts. This "missing middle" housing provides naturally affordable options between single-family homes and larger apartments.</p>
<div style="background: #fff3e0; padding: 2rem; border-radius: 8px; margin: 2rem 0; border-left: 4px solid #f39c12;">
<p style="font-size: 1.2rem; margin: 0;"><strong>Key Finding:</strong> Duplexes require public hearings or are prohibited in many residential districts, making them difficult to build even where they would fit the neighborhood character. Streamlining approval for 2-3 family homes in village zoning districts could help communities grow while preserving walkability.</p>
</div>
<h3 style="margin-top: 3rem; font-size: 1.8rem; color: #e74c3c;">Multi-Family Housing: Four Units and Above</h3>
<p style="font-size: 1.3rem; line-height: 1.8;"><strong>Apartments are heavily restricted.</strong> Four-or-more-unit buildings (apartments) face the most significant zoning barriers. Many towns prohibit multi-family housing entirely or allow it only in limited commercial/mixed-use zones, often far from services and transit.</p>
<div style="background: #f8f9fa; padding: 2rem; border-radius: 8px; margin: 2rem 0;">
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; text-align: center;">
<div>
<div style="font-size: 3rem; font-weight: bold; color: #27ae60;">~35%</div>
<div style="font-size: 1.1rem; margin-top: 0.5rem;">of districts permit 4+ family by right</div>
</div>
<div>
<div style="font-size: 3rem; font-weight: bold; color: #f39c12;">~25%</div>
<div style="font-size: 1.1rem; margin-top: 0.5rem;">require public hearings</div>
</div>
<div>
<div style="font-size: 3rem; font-weight: bold; color: #e74c3c;">~40%</div>
<div style="font-size: 1.1rem; margin-top: 0.5rem;">prohibit multi-family housing</div>
</div>
</div>
</div>
<h3 style="margin-top: 3rem; font-size: 1.8rem; color: #667eea;">Accessory Dwelling Units (ADUs)</h3>
<p style="font-size: 1.3rem; line-height: 1.8;"><strong>ADU regulations vary widely.</strong> Vermont law encourages but does not mandate ADUs. Some towns embrace them as "granny flats" helping families age in place, while others restrict them with owner-occupancy requirements, size limits, or prohibitions on detached ADUs.</p>
<div style="background: #e8eaf6; padding: 2rem; border-radius: 8px; margin: 2rem 0; border-left: 4px solid #667eea;">
<p style="font-size: 1.2rem; margin: 0;"><strong>Opportunity:</strong> Standardizing ADU allowances and reducing permitting barriers could create hundreds of new rental units annually without changing neighborhood character. ADUs provide income for homeowners and naturally affordable rentals.</p>
</div>
<h3 style="margin-top: 3rem; font-size: 1.8rem;">Lot Size Requirements: A Major Cost Driver</h3>
<p style="font-size: 1.3rem; line-height: 1.8;">Large minimum lot sizes increase land costs, promote sprawl, and make infrastructure more expensive. Many Vermont towns require 1-3 acre minimums even in areas with municipal water and sewer service where smaller lots would be appropriate.</p>
<p style="background: #fff3cd; padding: 1.5rem; border-radius: 8px; margin-top: 1.5rem;"><strong>Why It Matters:</strong> Requiring a $100,000 lot instead of a $50,000 lot directly increases the minimum price of a home. Smaller lots in walkable areas support local businesses, reduce driving, and make homeownership more accessible.</p>
<p style="margin-top: 3rem; font-size: 1.1rem; font-style: italic; color: #666;">Note: Specific percentages shown are illustrative. Detailed statistical analysis of the Vermont Zoning Atlas dataset is ongoing. Use the interactive map to explore actual regulations in specific districts.</p>
</div>
</section>
<!-- Regional Case Study Section -->
<section class="story-section" data-section="case-study">
<div class="story-content">
<h2>Regional Focus: Chittenden County</h2>
<p>Vermont's most populous region faces the state's most acute housing shortage. Let's examine how zoning affects housing availability in the Burlington metropolitan area—home to 168,000 residents across 19 municipalities.</p>
<h3 style="margin-top: 2rem; font-size: 1.5rem;">Why Chittenden County?</h3>
<p>This region contains Vermont's largest job market, the University of Vermont, the state's main hospital complex, and growing tech sector. Yet housing production hasn't kept pace with demand, creating:</p>
<ul style="font-size: 1.2rem; line-height: 1.8; margin: 1.5rem 0 1.5rem 2rem;">
<li>Less than 1% rental vacancy rates (3-5% is healthy)</li>
<li>Median home prices exceeding $450,000 in many towns</li>
<li>Workers commuting 30+ miles due to lack of nearby housing</li>
<li>Young people and families leaving the area</li>
</ul>
<h3 style="margin-top: 2rem; font-size: 1.5rem;">What Zoning Shows</h3>
<p><strong>Single-family homes dominate allowances:</strong> Like the rest of Vermont, single-family homes are permitted widely, but many town require large lots even in villages close to jobs and transit.</p>
<p style="margin-top: 1.5rem;"><strong>Multi-family housing is limited:</strong> Several bedroom communities surrounding Burlington prohibit apartments entirely or restrict them to small overlay zones. This pushes all multi-family development into Burlington and a few surrounding towns, concentrating housing in limited areas.</p>
<div style="background: #e3f2fd; padding: 2rem; border-radius: 8px; margin: 2rem 0; border-left: 4px solid #2196f3;">
<h4 style="margin-top: 0; color: #1976d2;">Example: South Burlington</h4>
<p style="margin: 0;">Vermont's second-largest city has significant commercial development but residential zoning that limits density. Much of the city requires 1-acre minimum lots, and multi-family housing is restricted to specific zones. Allowing duplexes and triplexes by right in more residential districts could create hundreds of units near jobs at the city's major employers.</p>
</div>
<div style="background: #f3e5f5; padding: 2rem; border-radius: 8px; margin: 2rem 0; border-left: 4px solid #9c27b0;">
<h4 style="margin-top: 0; color: #7b1fa2;">Example: Williston</h4>
<p style="margin: 0;">A major commercial corridor along Route 2 with big-box retail and office parks, but residential zoning heavily favors large-lot single-family homes. Workers at Williston's businesses struggle to find housing nearby, increasing traffic and sprawl. Mixed-use zoning allowing residential above retail could add workforce housing.</p>
</div>
<h3 style="margin-top: 2rem; font-size: 1.5rem;">Reform Opportunities</h3>
<p>Chittenden County towns could take several incremental steps based on the atlas findings:</p>
<ul style="font-size: 1.1rem; line-height: 1.8; margin: 1rem 0 1rem 2rem;">
<li><strong>Allow duplexes by right</strong> in all residential zones—these fit existing neighborhood character</li>
<li><strong>Reduce lot size minimums</strong> in areas with municipal water/sewer to ¼-½ acre</li>
<li><strong>Create village zoning</strong> in historic centers allowing mixed-use and missing middle housing</li>
<li><strong>Streamline ADU approvals</strong> by removing owner-occupancy and parking requirements</li>
<li><strong>Allow small multi-family</strong> (4-8 units) by right near transit and commercial areas</li>
</ul>
<p style="margin-top: 2rem; background: #e8f5e9; padding: 1.5rem; border-radius: 8px; border-left: 4px solid #27ae60;"><strong>Policy Note:</strong> These reforms don't force development—they remove barriers for property owners who want to build housing. Market forces and local review processes still shape what gets built.</p>
</div>
</section>
<!-- RPC Section -->
<section class="story-section" data-section="rpcs">
<div class="story-content">
<h2>Regional Planning Commissions: Partners in This Work</h2>
<p>Many Vermont towns don't have professional planning staff. To support local planning efforts, the state created 11 <strong>Regional Planning Commissions (RPCs)</strong>. These organizations provide technical assistance, coordinate regional planning, help towns update their bylaws, and offer GIS mapping services.</p>
<p>RPCs have been essential partners in creating this atlas, providing zoning maps and local expertise for their member municipalities.</p>
<div class="rpc-grid">
<div class="rpc-card">
<div class="rpc-name">Addison County RPC</div>
<div class="rpc-abbrev">ACRPC</div>
<div class="rpc-pop">23 municipalities • ~37,000 residents</div>
<p><a href="http://www.acrpc.org/" target="_blank">www.acrpc.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Bennington County RPC</div>
<div class="rpc-abbrev">BCRC</div>
<div class="rpc-pop">19 municipalities • ~36,000 residents</div>
<p><a href="http://www.bcrcvt.org/" target="_blank">www.bcrcvt.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Chittenden County RPC</div>
<div class="rpc-abbrev">CCRPC</div>
<div class="rpc-pop">19 municipalities • ~168,000 residents</div>
<p><a href="http://www.ccrpcvt.org" target="_blank">www.ccrpcvt.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Central Vermont RPC</div>
<div class="rpc-abbrev">CVRPC</div>
<div class="rpc-pop">23 municipalities • ~59,000 residents</div>
<p><a href="http://www.centralvtplanning.org" target="_blank">centralvtplanning.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Lamoille County PC</div>
<div class="rpc-abbrev">LCPC</div>
<div class="rpc-pop">13 municipalities • ~26,000 residents</div>
<p><a href="http://www.lcpcvt.org" target="_blank">www.lcpcvt.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Mount Ascutney RPC</div>
<div class="rpc-abbrev">MARC</div>
<div class="rpc-pop">24 municipalities • ~32,000 residents</div>
<p><a href="https://marcvt.org/" target="_blank">marcvt.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Northeastern Vermont Dev. Assoc.</div>
<div class="rpc-abbrev">NVDA</div>
<div class="rpc-pop">51 municipalities • ~62,000 residents</div>
<p><a href="http://www.nvda.net" target="_blank">www.nvda.net</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Northwest RPC</div>
<div class="rpc-abbrev">NWRPC</div>
<div class="rpc-pop">20 municipalities • ~49,000 residents</div>
<p><a href="http://www.nrpcvt.com" target="_blank">www.nrpcvt.com</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Rutland RPC</div>
<div class="rpc-abbrev">RRPC</div>
<div class="rpc-pop">27 municipalities • ~59,000 residents</div>
<p><a href="http://www.rutlandrpc.org" target="_blank">www.rutlandrpc.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Two Rivers-Ottauquechee RPC</div>
<div class="rpc-abbrev">TRORC</div>
<div class="rpc-pop">30 municipalities • ~47,000 residents</div>
<p><a href="http://www.trorc.org" target="_blank">www.trorc.org</a></p>
</div>
<div class="rpc-card">
<div class="rpc-name">Windham RPC</div>
<div class="rpc-abbrev">WRC</div>
<div class="rpc-pop">27 municipalities • ~45,000 residents</div>
<p><a href="http://www.windhamregional.org" target="_blank">windhamregional.org</a></p>
</div>
</div>
</div>
</section>
<!-- Map Section -->
<section class="map-section">
<h2>Explore the Interactive Atlas</h2>
<p class="map-intro">Use the map below to explore Vermont's 1,755 zoning districts. Click any district to see what housing types are allowed, minimum lot sizes, and other regulations. Compare different towns or search for patterns across regions.</p>
<div class="disclaimer">
<strong>Community-Built Dataset:</strong> This data was collected in 2023-2024. Zoning regulations may have changed. Always verify with your local zoning administrator or town office before making development decisions.
</div>
<!-- Housing Type Selector -->
<div style="max-width: 600px; margin: 2rem auto; text-align: center;">
<label for="housing-type-select" style="display: block; font-size: 1.2rem; font-weight: 600; margin-bottom: 0.5rem;">
Select Housing Type to Visualize:
</label>
<select id="housing-type-select" style="padding: 0.75rem 1rem; font-size: 1rem; border: 2px solid #ddd; border-radius: 4px; width: 100%; max-width: 400px; cursor: pointer;">
<option value="F1F_Allowance">Single-Family (1 unit)</option>
<option value="F2F_Allowance">Duplex (2 units)</option>
<option value="F3F_Allowance">Triplex (3 units)</option>
<option value="F4F_Allowance">Fourplex+ (4+ units)</option>
</select>
<div style="margin-top: 1.5rem; display: flex; justify-content: center; gap: 2rem; flex-wrap: wrap;">
<div style="display: flex; align-items: center; gap: 0.5rem;">
<div style="width: 24px; height: 24px; background-color: #27ae60; border-radius: 4px;"></div>
<span>Permitted</span>
</div>
<div style="display: flex; align-items: center; gap: 0.5rem;">
<div style="width: 24px; height: 24px; background-color: #f39c12; border-radius: 4px;"></div>
<span>Requires Public Hearing</span>
</div>
<div style="display: flex; align-items: center; gap: 0.5rem;">
<div style="width: 24px; height: 24px; background-color: #e74c3c; border-radius: 4px;"></div>
<span>Prohibited</span>
</div>
<div style="display: flex; align-items: center; gap: 0.5rem;">
<div style="width: 24px; height: 24px; background-color: #95a5a6; border-radius: 4px;"></div>
<span>No Data</span>
</div>
</div>
</div>
<div id="map" style="width: 100%; height: 800px; margin: 2rem 0;"></div>
<script>
// Initialize the map
var map = L.map('map').setView([43.951, -72.756], 7);
// Add a tile layer to the map
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
// Store all GeoJSON layers for re-styling
var geoJsonLayers = [];
var currentHousingType = 'F1F_Allowance';
// Function to determine color based on allowance value
function getColor(allowance) {
if (!allowance) return '#95a5a6'; // Gray for no data
var value = allowance.toLowerCase().trim();
if (value === 'permitted' || value === 'yes') {
return '#27ae60'; // Green
} else if (value.includes('public hearing') || value.includes('conditional')) {
return '#f39c12'; // Orange
} else if (value === 'prohibited' || value === 'no') {
return '#e74c3c'; // Red
}
return '#95a5a6'; // Gray for unknown values
}
// Function to style each feature based on current housing type
function styleFeature(feature) {
var allowance = feature.properties[currentHousingType];
return {
fillColor: getColor(allowance),
weight: 1,
opacity: 1,
color: '#fff',
fillOpacity: 0.7
};
}
// List of fields to display in the popup
var fieldsToDisplay = [
"County", "Municipal_Name", "District_Type", "District_Name",
"Overlay_District","F1F_Allowance","F2F_Allowance","F3F_Allowance",
"F4F_Allowance", "Affordable_Housing_District",
"ADU_Owner_Occupancy_Required","F1F_Elderly_Housing_Only",
"F2F_Elderly_Housing_Only","F3F_Elderly_Housing_Only","F4F_Elderly_Housing_Only"
];
// Function to bind popups to each feature
function onEachFeature(feature, layer) {
if (feature.properties) {
var popupContent = "<div style='max-height: 400px; overflow-y: auto;'>";
var title = (feature.properties.Municipal_Name && feature.properties.District_Name)
? feature.properties.Municipal_Name + ' — ' + feature.properties.District_Name
: (feature.properties.District_Name || feature.properties.Municipal_Name || "Zoning District");
popupContent += "<p><strong>" + title + "</strong></p>";
// Show current housing type prominently
var currentValue = feature.properties[currentHousingType];
var housingTypeLabel = {
'F1F_Allowance': 'Single-Family (1 unit)',
'F2F_Allowance': 'Duplex (2 units)',
'F3F_Allowance': 'Triplex (3 units)',
'F4F_Allowance': 'Fourplex+ (4+ units)'
}[currentHousingType];
popupContent += "<p style='background: " + getColor(currentValue) + "; color: white; padding: 0.5rem; border-radius: 4px; margin: 0.5rem 0;'>";
popupContent += "<strong>" + housingTypeLabel + ":</strong> " + (currentValue || "No data") + "</p>";
popupContent += "<hr style='margin: 1rem 0;'>";
popupContent += "<p><strong>All Housing Types:</strong></p>";
fieldsToDisplay.forEach(field => {
if (feature.properties[field] !== undefined && feature.properties[field] !== null && feature.properties[field] !== '') {
var displayName = field.replace(/_/g, ' ');
popupContent += "<p style='margin: 0.25rem 0; font-size: 0.9rem;'><strong>" + displayName + ":</strong> " + feature.properties[field] + "</p>";
}
});
popupContent += "</div>";
layer.bindPopup(popupContent);
}
// Add hover effect
layer.on('mouseover', function (e) {
this.setStyle({
weight: 3,
fillOpacity: 0.9
});
});
layer.on('mouseout', function (e) {
this.setStyle({
weight: 1,
fillOpacity: 0.7
});
});
}
// Function to update map styling
function updateMapStyling() {
geoJsonLayers.forEach(layer => {
layer.setStyle(styleFeature);
});
}
// List of RPCs to load
var rpcs = ['ACRPC', 'BCRC', 'CCRPC', 'CVRPC', 'LCPC', 'MARC', 'NVDA', 'NRPC', 'RRPC', 'TRORC', 'WRC'];
// Filter out overlay districts — they represent areas where allowance
// fields don't apply as base zoning and clutter the map display.
function isNotOverlay(feature) {
return feature.properties && feature.properties.Overlay_District !== 'Yes';
}
// Load each RPC's GeoJSON data
rpcs.forEach(rpc => {
fetch('data/RPC/' + rpc + '.geojson')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText);
}
return response.json();
})
.then(data => {
var layer = L.geoJSON(data, {
filter: isNotOverlay,
style: styleFeature,
onEachFeature: onEachFeature
}).addTo(map);
geoJsonLayers.push(layer);
})
.catch(error => console.error('Error loading GeoJSON data for ' + rpc + ':', error));
});
// Add event listener for housing type selector
document.getElementById('housing-type-select').addEventListener('change', function(e) {
currentHousingType = e.target.value;
updateMapStyling();
});
// Sections above the map animate with translateY, shifting the page
// layout after Leaflet caches the map's pixel position at init time.
// invalidateSize() forces Leaflet to recompute position once visible.
window.addEventListener('load', function() {
map.invalidateSize();
});
var mapSection = document.querySelector('.map-section');
if (mapSection && 'IntersectionObserver' in window) {
var mapObserver = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
map.invalidateSize();
}
});
}, { threshold: 0.1 });
mapObserver.observe(mapSection);
}
window.addEventListener('resize', function() {
map.invalidateSize();
});
</script>
</section>
<!-- Final Context Section -->
<section class="story-section" data-section="context">
<div class="story-content">
<h2>Zoning for Great Neighborhoods</h2>
<p>This atlas supports Vermont's <strong>"Zoning for Great Neighborhoods"</strong> initiative, led by the Department of Housing and Community Development (DHCD) in partnership with the Congress for the New Urbanism. The initiative helps municipalities make incremental reforms to remove unnecessary barriers to creating more homes.</p>
<p>Zoning rules can present barriers to effective planning, impairing our ability to achieve important policy objectives like community integration, climate resilience, transportation access, and affordable housing development. By mapping what's currently allowed across all 255 towns, the Vermont Zoning Atlas helps:</p>
<ul style="margin: 2rem 0; font-size: 1.1rem;">
<li><strong>Researchers and advocates</strong> identify where housing barriers exist</li>
<li><strong>Town officials and planning commissions</strong> compare their bylaws to neighbors</li>
<li><strong>Policy makers</strong> understand statewide patterns and develop evidence-based solutions</li>
<li><strong>Citizens</strong> see what's allowed in their community and advocate for change</li>
</ul>
<h3 style="margin-top: 2.5rem;">Resources for Towns</h3>
<p>Vermont provides extensive resources for municipalities looking to update their zoning:</p>
<ul style="font-size: 1.1rem;">
<li><a href="https://outside.vermont.gov/agency/ACCD/ACCD_Web_Docs/CD/CPR/Planning-Your-Towns-Future/CPR-Z4GN-Guide-Final-web.pdf" target="_blank"><strong>Enabling Better Places: A Zoning Guide for Vermont Neighborhoods</strong></a> - Comprehensive guide with sample bylaw language</li>
<li><a href="https://accd.vermont.gov/town-future/zoning-for-great-neighborhoods" target="_blank"><strong>Training Videos & Resources</strong></a> - Free educational materials from AARP Vermont and DHCD</li>
<li><a href="https://www.housingdata.org/toolbox" target="_blank"><strong>Housing-Ready Toolbox</strong></a> - Collection of resources for Vermont communities</li>
<li><strong>Regional Planning Commissions</strong> - Free technical assistance for member towns</li>
</ul>
</div>
</section>
<!-- Conclusions Section -->
<section class="story-section" data-section="conclusions">
<div class="story-content">
<h2>Next Steps: Using This Atlas</h2>
<p>The Vermont Zoning Atlas does not prescribe specific policy solutions or take a position on local versus state authority over land use. Instead, we provide <strong>transparent data</strong> to inform conversations about housing in Vermont.</p>
<h3 style="margin-top: 2rem; font-size: 1.5rem;">How Communities Can Use This Data</h3>
<div style="background: #f8f9fa; padding: 2rem; border-radius: 8px; margin: 2rem 0;">
<h4 style="color: #27ae60; margin-top: 0;">For Municipal Officials</h4>
<p>Compare your town's zoning to similar communities. See what neighboring towns allow. Use the atlas to identify quick wins—small changes that could meaningfully expand housing opportunities while maintaining community character.</p>
</div>
<div style="background: #f8f9fa; padding: 2rem; border-radius: 8px; margin: 2rem 0;">
<h4 style="color: #f39c12; margin-top: 0;">For Planning Commissions</h4>
<p>Ground bylaw updates in statewide data. When considering changes to multi-family allowances or lot size requirements, see how your proposals compare to the rest of Vermont. RPCs can help analyze your local data.</p>
</div>
<div style="background: #f8f9fa; padding: 2rem; border-radius: 8px; margin: 2rem 0;">
<h4 style="color: #667eea; margin-top: 0;">For Researchers & Advocates</h4>
<p>All data is open-source and available for download. Conduct statistical analyses, create visualizations, or integrate with other datasets. Help us improve the atlas by submitting corrections and updates.</p>
</div>
<div style="background: #f8f9fa; padding: 2rem; border-radius: 8px; margin: 2rem 0;">
<h4 style="color: #e74c3c; margin-top: 0;">For Citizens</h4>
<p>Understand what's allowed in your town. Attend planning commission meetings informed by data. Advocate for specific reforms grounded in evidence about what works elsewhere in Vermont.</p>
</div>
<h3 style="margin-top: 2.5rem; font-size: 1.5rem;">Common-Sense Reforms Worth Discussing</h3>
<p>Based on atlas findings and national research on housing policy, communities may want to consider:</p>
<ul style="font-size: 1.1rem; line-height: 1.8; margin: 1rem 0 1rem 2rem;">
<li><strong>Allowing duplexes by right</strong> in all single-family zones—they look and feel like single homes</li>
<li><strong>Reducing minimum lot sizes</strong> where municipal water/sewer exists</li>
<li><strong>Streamlining ADU approvals</strong> by removing unnecessary restrictions</li>
<li><strong>Allowing small multi-family</strong> (4-8 units) by right in village centers and near transit</li>
<li><strong>Reducing parking minimums</strong>, especially near downtowns and for affordable housing</li>
<li><strong>Creating "missing middle" zoning</strong> districts for traditional neighborhood development</li>
</ul>
<p style="margin-top: 2rem; background: #fff3cd; padding: 1.5rem; border-radius: 8px; border-left: 4px solid #ffc107;"><strong>Important:</strong> These are conversation starters, not mandates. Every Vermont town has unique character, needs, and priorities. Local decision-making remains paramount—but should be informed by data.</p>
<h3 style="margin-top: 2.5rem; font-size: 1.5rem;">Keeping the Atlas Current</h3>
<p>Zoning regulations change regularly. Our goal is to update the atlas annually, but we need community help. If your town has updated its bylaws, please <a href="contribute.html" target="_blank">let us know</a>. Municipal clerks, planning staff, and RPC representatives can submit updates through our GitHub repository or contact form.</p>
<p style="margin-top: 2rem;"><strong>The Vermont Zoning Atlas is part of the <a href="https://www.zoningatlas.org/">National Zoning Atlas Project</a>, led by Professor Sara Bronin.</strong></p>
</div>
</section>
<!-- About & Credits Section -->
<main class="container" style="padding: 4rem 2rem;">
<h2>About This Project</h2>
<p>The Vermont Zoning Atlas brings together zoning laws from 1,755 districts across all municipalities. Without this tool, one would have to read thousands of pages of dense legal code to answer simple questions about where and what types of housing can be built.</p>
<p><strong>Data Disclaimer:</strong> The user should not rely on, nor is there any guarantee of, the accuracy or completeness of the data contained in the Vermont Zoning Atlas. The data presented should be considered as informational only for research and advocacy purposes. The atlas team assumes no liability for errors, omissions, or inaccuracies. <strong>Always verify current regulations with your local zoning administrator or town office before making development decisions.</strong></p>
<p style="margin-top: 2rem;">If you use this data in publications, please cite: <a href="https://doi.org/10.5281/zenodo.11508694">https://doi.org/10.5281/zenodo.11508694</a></p>
<h3 style="margin-top: 2.5rem;">Project Team & Partners</h3>
<p>The Vermont Zoning Atlas is a collaborative effort led by the University of Vermont in partnership with Vermont's Regional Planning Commissions, the Vermont Department of Housing and Community Development, and community volunteers.</p>
<p><strong>Funding Support:</strong> This project was supported by the University of Vermont, Vermont Housing Finance Agency, and other partners committed to data-driven housing policy.</p>
<h2 style="margin-top: 3rem;">Learn More</h2>
<ul style="font-size: 1.1rem;">
<li><a href="about.html">About the Vermont Zoning Atlas Project</a> - Team, timeline, and partnerships</li>
<li><a href="data.html">Data Structure & Fields</a> - Understand the dataset and field definitions</li>
<li><a href="contribute.html">How to Contribute</a> - Help keep the atlas current</li>
<li><a href="resources.html">Visualizations & Analysis</a> - Maps and charts using VT Zoning Atlas data</li>
<li><a href="https://github.com/VERSO-UVM/Vermont-Zoning-Atlas" target="_blank">GitHub Repository</a> - Download raw data (MIT License)</li>
</ul>
</main>
<footer>
<div class="container">
<p>© 2026 Vermont Zoning Atlas. Licensed under <a href="https://github.com/VERSO-UVM/Vermont-Zoning-Atlas/blob/main/LICENSE">MIT License</a>.</p>
<p>Repository: <a href="https://github.com/VERSO-UVM/Vermont-Zoning-Atlas" target="_blank">VERSO-UVM/Vermont-Zoning-Atlas</a></p>
</div>
</footer>
<script>