fix: keep public folder, rewrite gitignore