diff --git a/README.md b/README.md
index 31eb6da..e0b7c64 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[![tinytapeout](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tinytapeout.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tinytapeout.yaml)
+[![tinytapeout](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/gds.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/gds.yaml)
 [![verification](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/verification.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/verification.yaml)
 [![tt_datasheet](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tt_datasheet.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tt_datasheet.yaml)
 
@@ -18,6 +18,27 @@
 
 # Project Index
 
-* [339501025136214612](https://wokwi.com/projects/339501025136214612) https://github.com/TinyTapeout/tt02-test-straight
-* [340805072482992722](https://wokwi.com/projects/340805072482992722) https://github.com/TinyTapeout/tt02-test-7seg
-* [341535056611770964](https://wokwi.com/projects/341535056611770964) https://github.com/TinyTapeout/tt02-test-invert
+| Author | Title | Git Repo |
+| ------ | ------| ---------|
+| Matt Venn | Test project | https://github.com/TinyTapeout/tt02-test-straight |
+| Fraser Price | SIMON Cipher | https://github.com/Fraserbc/tt02-simon |
+| Chris | Matrix display | https://github.com/chrisruk/matrixchip |
+| Jon Klein | Power supply sequencer | https://github.com/loxodes/tt02-submission-loxodes |
+| Marcelo Pouso / Miguel Correia | Duty Controler | https://github.com/migcorre/tt02-dc |
+| Ryan C | CPU | https://github.com/ryancor/tt02-submission-template |
+| Aidan Good | The McCoy 6-bit Microprocessor | https://github.com/AidanGood/tt02-McCoy |
+| Azdle | binary clock | https://github.com/azdle/binary-clock-asic |
+| Justin Pelan | TinySensor | https://github.com/justinP-wrk/tt02-TinySensor |
+| James Ross | 8x8 SRAM | https://github.com/jar/tt02_sram |
+| Jens Schleusner | German Traffic Light State Machine | https://github.com/JensIMS/tt02-trafficlight |
+| Seppe Van Dyck | Ising Spin | https://github.com/svd321/tt02-Ising |
+| Tholin | Avalon Semiconductors '5401' 4-bit Microprocessor | https://github.com/89Mods/tt2-AvalonSemi-5401 |
+| Rice Shelley | small FFT | https://github.com/RiceShelley/tiny-fft |
+| William Moyes | Stream Integrator | https://github.com/moyesw/tt02-moyesw-StreamIntegrator |
+| Tom Schucker | tiny-fir | https://github.com/Tschucker/tt02-submission-tiny-fir |
+| Greg Steiert | Configurable SR | https://github.com/steieio/tt02-submission-universal-sr |
+| Luis Ardila | LUTRAM | https://github.com/leardilap/tt02-LUTRAM |
+| Emil J Tywoniak | chase the beat | https://github.com/ekliptik/tt02-chase-the-beat |
+| maehw | BCD to 7-segment encoder | https://github.com/maehw/tt02-bcd-7segment-encoder |
+| Ben Everard | A LED Flasher | https://github.com/benevpi/tt02-LED-flasher |
+| Tholin | Avalon Semiconductors 'TBB1143' Programmable Sound Generator | https://github.com/89Mods/tt2-avalonsemi-TBB1143 |
diff --git a/README_init.md b/README_init.md
index 9ca3d24..62194a2 100644
--- a/README_init.md
+++ b/README_init.md
@@ -1,4 +1,4 @@
-[![tinytapeout](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tinytapeout.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tinytapeout.yaml)
+[![tinytapeout](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/gds.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/gds.yaml)
 [![verification](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/verification.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/verification.yaml)
 [![tt_datasheet](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tt_datasheet.yaml/badge.svg)](https://github.com/tinytapeout/tinytapeout-02/actions/workflows/tt_datasheet.yaml)
 
diff --git a/configure.py b/configure.py
index 69f386b..4f587ad 100755
--- a/configure.py
+++ b/configure.py
@@ -126,7 +126,10 @@
             self.top_module = self.yaml['project']['top_module']
             self.src_files = self.yaml['project']['source_files']
             self.top_verilog_file = self.find_top_verilog()
-   
+  
+    def get_index_row(self):
+        return f'| {self.yaml["documentation"]["author"]} | {self.yaml["documentation"]["title"]} | {self.git_url} |\n'
+
     # top module name is defined in one of the source files, which one?
     def find_top_verilog(self):
         rgx_mod  = re.compile(r"(?:^|[\W])module[\s]{1,}([\w]+)")
@@ -519,6 +522,20 @@
         for project in self.projects:
             logging.info(project)
 
+
+    def build_index(self):
+        logging.info("building doc index")
+        with open("README_init.md") as fh:
+            readme = fh.read()
+        with open("README.md", 'w') as fh:
+            fh.write(readme)
+            fh.write("| Author | Title | Git Repo |\n")
+            fh.write("| ------ | ------| ---------|\n")
+            for project in self.projects:
+                if not project.fill:
+                    fh.write(project.get_index_row())
+
+
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(description="TinyTapeout")
 
@@ -559,3 +576,4 @@
     if args.update_caravel:
         caravel.create_macro_config()
         caravel.instantiate()
+        caravel.build_index()
diff --git a/tinytapeout.png b/tinytapeout.png
index ed39bbf..b6497e5 100644
--- a/tinytapeout.png
+++ b/tinytapeout.png
Binary files differ
