::=++-
+%%#*+=. .::-=%+*-
:-+=:-++=::+=-: :. :*@@@@@@@@*+:
..-+****+- +%@@*: :.+%@@@@@@##%##* :-. ..
...:+*##%%%@@@@*=+***#%%@@%#@@@%#+#@@@@@@@@=:-=++==+*+.
.. .+#%###%%%%%#%@@@@@@@@@@@@@@@@@@#**%#= -#@@@@##***+ =.=+
:..*#%###%%%%@@@@%@@@@@@@@@@@@@@@@*@+ :*= -@@***+##-=#%+@-:
:.=#####%%%%%@@@@@@@@@@@@@@@@@@@@@@=.=@@::-:-= -*%@@@@#@@@#:-+
++*#####%%%%@@@@@@@@@@@@@@@@@@#@.#@@#@@@@@=+++##%***###%+.=@@+*++=
-***###%%%%@@@@@@@@@@@@@@@@@@@@@@#@@#=@%#%@@==-:=@@@@@@#-%=*+. -+##=*=
.=#+*###%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%*##=-::.=#%@%*+#@*%@= :.=%%%*-.
.+#**##%%%%@@@@@@@@@@@@@@%#+++++#%*#@@@@@@@@@@@@@@@*@@@@*@@@@@%@@+%%*%%#**=::...
.. . .==*###%%%%@@@@@@@@@%#+=--:--:-::*=-%@@@@@@@@@@*#%@@@@@@@%@@@@@%@@@#%%%@%%+.-:.:::
...::--+==+++**=*###%%@@@@@@@@@%++=-=---:----=#:%@%%@@%@@@@*=%@@@@@@@@%@@@@@@@@@@@%##%@@: = .:=-
...... .-*++**####%%%%@@@@@@@%*+++==------:-:-*:@%%#%@%%%@@@@%@@@@@@@@@@@@@@@@@@@@@%@@%@@#* =*-
+***###%%%%%@@@@@@%*+++===--::--:--=*-@@####%##%%%%@@@@@@@@%*#@@@@@@@@@@%#**##**#+**#=
#*###%%%%@@@@@@@##**+==-:::::::::::+=*@%####%%#%@@@%%%@@@%%@#@@@@@@@@@@@@%*+-...=+:.+
.... .####%%%%@@@@@@@@#**+==----:::::::::-=+@@%%######@######@@@@@@@@@@@@@@@@@@@@@@@%%@**-+.
........ .%####%%%@@@@@@@@@##*+===--:::::.::::::-*@@@%%%%%%%%##%%+#@@@@@@@@@@@@@@@@@@@@%@@#*:-%#*
.... ...-::#####%%%%@@@@@@@@@%#+===--::::.....:....:=@@@@@@%%######*#%@@@@@@@@@@@@@@@@@@@@@@*#- *#*:
......::-=++###%%%%@@@@@@@@@@@+===-:::........::::::::*####*##**##*###%@@@@@@@@@@@@@@@@@@@@@%@+ +%--
.. .:::- :+**###%%%@@@@@@@@@@@+=+======--.. ........-------=++++*#%@@@@@@@@@@@@@@@@@@@@@@@##:#%-+.
....::---+#+##%%%%@@@@@@@@@@**@%@@@@@@@@@@#+- ...:-=+*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*
.. ::----#+-%#%%%@@@@@@@@@@%@@%++*****++***%@@*-:.. ....:=*#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#++-
. : :---==:+#%%%%%@@@@@@@@@@@#++==++*###%%%%%%%@%+-::...:-----+#%@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@%%*
... ::..=++**#%#%%%@@@@@@@@@@#+-==---::::-==*###*+*@#: ..::==#@@%***#**#****#%@@@@@@%@@@@@@@@%@@=-: :-
.: ==-.:+**#%#%%%%@@@@@:::+%+:......:::---:----====*##*======@%%%+-====++***+===*#@@@@@%@@@@@@@@@#:*=.=-.@*
. .::--++++**+-#%%%@@@@@@%%@%%+=======---=+*#@#*++===:+@=...-=#@%#*++++=-:-*+#%%@#++*%@@@@@*++*@@@@@@%*=*##+
. : .++**#+*%%%%@@@@@@@@@@#++*#%%%%@@@%@@@%@@#*=-:.+%: .:*@@%###*%@%#*####%@@%###@@@@@*%*#@@@@@@@@**+:
. ..:.. -++==*#%#%%%@@@@@@@@##--+*#@@@%=@@@@@*-%**-::+##%-.:..-+%@=***%#.*@@@@@@@@@@%##@@@@@#@@@@@@@%#**=*%@@@@%#*+=--:..
... -.=*++--*##%%%%@@@@@@@@-%=-++*##**=+***#%%#+===-=-#*:::...=%@=%%%%#=+%@@@%#@@@@@@#%@@@%%@@@@@@@@@%%*+:..:.:.:--:::::...
. .. =+-+**+###%%%%@@@@@@@#.:%=.:::-=+**+**#**++==- *%::..::.=%@@####%%%####%%%@%%%@%%@@@*@@@@@@@@@@%##+.=.
-: .=*####%%%%@@@@@@@--::#=.::::::.:.....::. -%#::::::::+#@@@*====++***#*****+*##%@#@@@@@@@@#=##%=- *....:....::....
. :-::+%##%%%@@@@@@@#:-:..+*. ........... :#%-.:-:::.:-=*%%%%#+-===-==+++++++****#@@@@@@@@= .:#@=- = ... .. ::..
. :-.-:.#@%%%%@@@@@@@=:::.. .+=-:.. -##=.:--:::...:=+*%%#*%#=-----==-----=+###*@@@@@@@ %@=-.= :+--. :-
. .-------=@%%%@@@@@@@=--:... .-=****###*##+:.:-=-::::::::=*##@@%==##**+====+++*+***#%@@%%@@@. @@=-.#++==--:...:
. .-: :==- .@%%@@@@@@@*--::... ...... :=-:-:::. :-+#%%#%%=:-+*####**++++=+###@@##@@# @@=:.*===------:.
.-. .--::-=- .@%%%%*@@@=*=-::..... . .. :===-. .:. :-+###+*@@+::::--====-=+*+*##@@%#@@ .@@=:.*===-=+==- .
...:-: .-:---+- :@%%@*--+**:#---:.:...........=+-.:==+@@*+=:::::=#%@@##@%#=::--========**##%@@%#@- .@@=::*===-++=-=
. :: .-.:--+- :@%%@#-+ -:==---:.....::...:++....:+##*+=+*#++#@@@@@@@%***=:-:-===++++**##@@@%@@ :@%=.:*=+==+= -- .. .
: :: .-----+: -@%%@@--+.::-+--:::....:...-**:.::---:..::-+*#%%%##%####***#=:---=++++**##%@#%@@= :@%+.-*+---=+-:
.. .::-=--+: =@%%%@@--:: =*----:......=##+:---====--::-==-----=+*#########+::-==+++*###@@%@@@@:... -@%+.-*+: ::.+- .
.. .::-: --+. *@%%@%@+ ..:@@==+-:::::-%@+-:-=--=---:::.-+===----=++***#####%%*--=++*####@@@@*=*-# -@%+.=*+::- ==-:.
..... .:.:- --+. *@%%@#+@%=%@@@#-+=::--=@%-----:.......::..::::--===+++++****###@%=+=*##%#@@%%@%%@*@. =@#+.=*+===.:=-..:
........::---==++=*. #@%%@* *@%@@@@@+=+-:::#%:=****+--=+********++*%###%#######%%@%*%@-==+###%@@%@@@@@@@@: +@#+.+*++==-.: -:. ...
. #%%%@@#@@@@@@@@@+#+::-+-=#+==*@@@@@+*==***#%@%%#@##@@@@@@@@%#*+#*:-+*#%#@@@@@@@@#%::- +@#+ +*+=*#=- .=. ..:. ....
..........::.............@@@%@+.%@@@@@@@@@**-:-:.:-:.:::=#@@*#:.- :- *++@@@@@%*+*#***:-=*#%%@@@@@@@@@%: *@#+ **+. :==-+- -. .:..
::::::::-------====++**##*+*%@. #@@@@@@@@@%%%-::::::::::.:=++*###%@#%@@@@@@@%%%##**###*+-=**#%@@@@@@@*-+%*. *@#* **++-:===: ----.:-.:: .
---===========++++++*******#@@: #@@@@@@@@@@@@%-:-::-:::-:::-=-==:==-=+-+++*#####**##%*=*+*##%@@@@@@@%=*# #@** %***##*=..-==:.+=.::-- .
-======++++++****###%%%@@@@@@+ .@@*+###@%@@@@@-.:::--:::-:::--=---:--:+*#*##****#%%*++%#@%@@@@@%%@@@*+ %@**.@@@%%%##***++++-::-=-=.:
. #- .@@@@@%**=:-------------=+++***+++***#####*#%%@@@@@@%@@@@@@ %@** -=====++++=++++=+*+++*::
:. .-. .@@@@@@%#+.:------=--====+++++++**#####%*+#@@@@@@@@*@*%@#: @@+++---:::::::........ ... -
.: . ..: @@#@@@@@#+---::::---====+*#*******#***#*#@@@@@@@@@ @@@@@@@@@@@@@@@@%%%%%##****+=
-:.. =*-: :..:...- *@#+%@@@%%#++-=-:::::--======+==+**=+*#@@@@@@@@@@@@ . *@%@@@@@@@@@@@@@@@@@@@@@@@@@#
- :@#*%- @- :. . :@@**@@@@@@#-+**=:--:::..:::-=+++++*%%@@@@@@@@@@@@@*: . .......::::::::::-
==#==*%%@= -@: .-.:+**+: :@@#+%@@@@@%%@%#*----:.::--:-++**%%@@@@@@@@@@@@@@#+=+-:: ....::..:::::::......... .
:.#+=:+. ::. .....:: --:=+=-. +@@#*@%@@@@@@@@#*=--=+:::::-=-#%@@@@@@@@@@@@@@@@*+-+*#*=. ...:::--::::::::
: .. .=::--=*=- @@@%##**@@@@@@@%*+===++#+*+++%@@@@@@@@@@@@@@@@@+-:=#= .:- -:::::::
:: .--:.:*#: #@@%**=-#@@@@@@@%@%*++*#%#@@@@@@@@@@@@@@@@@@@#-:=..*. - .. ---::::
. :..:== -#: +@@%*%+-+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%**--+: =*+=-: ..--:
. . .:--=-..*= @@@%%*++#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*++::++:**+++=. : ::
=: :: .===== -@@#**+++#@@@%%%@@@@@@@@@@@@%%#%%@@@@@+==-:.=- :#*++=-
-+-:-= :=+:. %@@*+++=+*#%%%@@@@@%#*%%##**##%@@@@+-=--:.-: =#+++ .
**=--: =*=:. #@@*+++==--====++++++*+++++#%@@#==--:=- -*-: -#++. -+. .
=+=-:. :: =+=-. #@@%**+===--------=====+*#%%+--+=..-= -#.#*=-. -*+- :#:
=*=-:. .=:. -+:. :%%#********+++++++++=---. .=++. :=: @-*+=-:. +*= *+:-::=
=+=-:. --: :-. :#*=::....::.... .:-:...:-. . %*+==-: :++ % .:.
=+=-:. .--:.. :: + :%*+=:. :-.:...: **==-:: ++. * . .
-++-: .--:.. -. *@ #*=--... . :. .. . *#==-:: =+- : := :- -:
.-=+: .::.... . +@ *%*+=-:. = . ... **==-:. :+-. +: -: #=#* :-
.:++: ::::... .-#*====-:. +. .. #*=-:: =-: =+ -: *+@. .+
:-=: :::::.. --**+==---. :. ... . :#*=-. --. * -: *#- +:
. :-=: .::::... ..::**++=--:. ..=: .-##+=:. .: -+ :: @@ =-
. :-=. .:::::.. . ..-*%*+==-:. ... .=. -*=-: :. =- -+ @+ ..
. .-- :::::::. .=+.:#+=-::. .. . := *+=-:. .. +: := @: .
. . :: .:::::::: .. . . *+=-:. . .. --==-.+%*=-:. +. .*.=. :.
.. : .::::::- :* . #*+=-. . . -%@%%#**+-::.. +: .#:--::
. ..:::::: +- -@*==:. .. . -%@#+==-::.:.. =:. #---:.
. .:.::-. # *%=-:.... . .#@#+=--::...... : . #--=.
. . .:::: :- =#+-::: -@*==--:::. ..:. . .. #=--
. ..::::. =- . *+:-:. .**-=--:..: .. .. #=--:-.
: .:::: # +*-::... .-+=--:..... . #=-=*: ...
: .:::.. .# +#*=:-: ==+--:. . .. . . #=-%= .:...
-:: .= .:::::. -% +#*=. -=-=--: : .#=+% :.....
-::. :. .::.:.. == .==-. :-----:. .:: .-=++-:...
Michigan Herp Atlas
Website & WordPress CMS · Design & Front-end Development
2021–2025
Freelance, with Dan Arpoika
A statewide database of Michigan’s reptiles and amphibians, built so anyone who spots one can add a record.
- Records in the atlas
- 37,000+
- Threatened species records
- 4,000+
.-.:. :...-:::..
.-:. . --.-.=:::..
..::-.. ..::.---:--:::.
--:=--: . . -===-===.::::
-+=:::-. .:.-.-==-+-+=:--:
===+--==::. . .::-+++**+++:::: :. .
##+=*==--:::.. . .. .. .:-=+==*+**++=++-:-:. . .. .:.. .
**%*#+*-+=:- .. .. . ....: : .:---=*=+#*+#*#+=+--.. . .. . ..:::. .::.-: . .
#%***+**+-=::....:... .:.: ----:::-.: .. . ..=-=****#*%#*#*+==--:-:.:. .:. ------=:--:-::..
@##%*#**+=+-=--.. . :::::-:=--=-=--:.: :::=++=*##*%%*++#**==-:-:::::-::-:-==-=-=+===:=::..
%%@%###**==+==:--:..::.::-=-:-=+==--=:-.. .:::-+=*#*#*%%%%#+***-==-:..---::--=++===-=---:::::.
%*#%%%#*#++==---:-::.:..:=:=-==++==---:.... ..-==+**++#%+#***+*==-:=-:---:=:::====++=++=+=--:::
#*#%**+++=-=:-.:...::-..-:====-=--+=-:. . .:---=**##**+*#====+-==:-....=.===+=+**++==--:::..
+*#***+==--::.:-..: :::-:::-:==:=-:...: ..:=++*=+++++*++:=..:... .-::-:=-====++-=+=-.:. .
++*++==--:--. . ..: :::--:-:--=--.. ::---=-=-==-===:::.: . :.:.--::-:--=-++-:::.
=:--==-:.:... . . .:.-::-:--::: :..::-:-:-:::: . .. ..:.:-=--=+=+=::. :
-::-::::.: . .:-:--::.. ..... .:::.. . :. ::---=:::.. .
..:::::. . . ... .-: . . . .--.-:.::
. . :..::.. :....:..:.:
. .:::..: :-.--:::.
. .: .: . ....:.::-::
....-.:::: .:.:----.:
.::::=:::-.:.. .---=--:-..:
. :::-==:==:-.-... .:----=--+-:=:-.
. ..:.::=--+==+++-=:. ....-+===*====----:..
.. :.::=====+*+****+-:: . .. . -----+*=*#*++*+=--..
..:.: . . :.-==+*+#*+#%+#*+*===:: . . ....: . ..::=+**+*%*##*++==--:: .
-::-:::.: .. :.:===++%#%#%#*##+#++-=.: ..:.::-:: . ::=+*+**###@%******+=:.:...
-:-::.: . ..: :-==+**%#%##%%@#*#+*--=:: . :. .--:-.--:-.: . .. -::-+*#+%%##@%*#%%+==+:::::.
=:----. . . . :.--*+**#%%@%@#%%*++=+==:: . .. ::.-:----:-:-.:. ..-==++*%%#%@@%%#%+#+==-=-. . :
::..: .:. .. .-=+==+#*#%@@%##**++*-=:-... . . .::..::-.::-::: .::::-++**###@#@%##*++*+-::. .::.
:-:-:. . ::::-+*##*##%#@%%*#**=+==: : . .:.::.::--=::.: .. ::.-=+++*%*%#%*#*#++==-=::.:: :
::.:.. :.-=+*=*###*#*#+++++:=.:... . :..:-::-.-.:. ..:.:-=*=+*#**#+++=++--.:.. .
.. . ..--+*=**+#+***=-=:-..: ... ::..-:.:: .. .--+*==++#=+=++=:.-: :..
. :.--:=*+=*===-===::: . . : :. . : . .:---=======-=-.:.. ..
. .:=+--+--=-:: . . . . . .:.::=:==-:.-:..
. .:=::-.---. . . . . ...:-..::.
. .:::. . . . . . ..
.:.::. . .
... .
. . .. .. ... .
. . . . . .. ...::: The problem
A conservation database
that runs on volunteers.
The Michigan Herp Atlas tracks where Michigan’s turtles, frogs, toads, snakes, salamanders and lizards turn up, so researchers and the state can see how populations change over time. Every range map on the old site ran on Flash. There was no CMS, so the team couldn’t update anything, and submissions went through a separate app.
Getting it done
I designed all of it, and built the front end on everything but the maps.
Designed everything, built most of it. I designed the site and executed the front-end development. Dan Arpoika handled the back end and the range maps. We went from design to finished development in three months.
Gave the team a CMS for the first time. Keeping the design simple and modular, with the exception of a few core impact moments, gives their team enough layout flexibility to expand. It was the first CMS the Michigan Herp Atlas team could manage themselves, and the theme was flexible enough to use as the core structure behind another of their websites.
Moved submissions into the browser. Moving the system into the browser meant better permissions and roles, a smoother administration workflow and security improvements.
The site
Records, maps and species,
all in one place.
We replaced the Flash maps and the separate submissions app with one browser-based site: records, maps, species pages and resources in one place, and a CMS so the team could finally run it themselves.
From sighting to data
Spot it, log it, get it checked, see it on the map.
01Sign up

Register an account, so every record has a person behind it.
02Log it

Add the species, place and date in the browser, plus a voucher photo if you have one.
03Get it checked

Records are reviewed before they’re added to the atlas.
04See it on the map

Approved records show up in the activity and diversity maps and the species lists.
What changed
A living database, still growing.
- 37,000+ records in the atlas, including more than 4,000 for threatened species.
- No more Flash: public activity and diversity maps, species lists and latest records.
- Browser submissions brought bandwidth issues of their own. A group of developers solved them with a field app that feeds the same atlas.
- The team runs it day to day and comes to us for updates, server work and the odd bug. I still volunteer my time.

This was inspired by my playful pets, the stinky cheese man and, most importantly, my wonderful daughter.
curiosity and wonder is often lost in this age of technology. Sometimes you need to take chances to see new possibilities.

